#include<bits/stdc++.h>
using namespace std;
const int N=100005;

int n,m;
vector<int> edges[N];
int in[N];
int ans[N];

int main()
{
    scanf("%d%d",&n,&m);
    memset(in,0,sizeof(in));
    for(int i=1;i<=m;i++)
    {
        int s,t;
        scanf("%d%d",&s,&t);
        edges[s].emplace_back(t);
        in[t]++;
    }
    queue<int> que;
    for(int i=1;i<=n;i++)
    {
        //printf("%d %d\n",i,in[i]);
        if(in[i]==0){
            que.push(i);
            ans[i]=1;
        }
    }
    int cnt=2;
    while(!que.empty())
    {
        int size=que.size();
        for(int i=0;i<size;i++)
        {
            int s=que.front();
            que.pop();
            for(auto t:edges[s])
            {
                in[t]--;
                if(in[t]==0)
                {
                    ans[t]=cnt;
                    que.push(t);
                }
            }
        }
        cnt++;
    }
    for(int i=1;i<=n;i++)
    {
        printf("%d\n",ans[i]);
    }
    return 0;
}
